package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import manejadores.ManejadorAltaTension;
import manejadores.ManejadorBajaTension;
import manejadores.ManejadorUsuarioServicio;

import censo.db;
import entidades.AltaTension;
import entidades.BajaTension;
import entidades.UsuarioServicio;

/**
 * Servlet implementation class SrvTransformador
 */
@WebServlet(description = "Servlet Usuario Servicio", urlPatterns = { "/SrvUsuarioServicio" })
public class SrvUsuarioServicio extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvUsuarioServicio() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void ProcesarPeticion(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
    	response.setContentType("text/html;charset=ISO-8859-1");
    	PrintWriter out = response.getWriter();

		String operacion = (String) request.getParameter("operacion");
		
		db conexion = null;
		
		try {
			if (operacion.equals("add")) {
				conexion = new db();
				
				String codigo = (String)request.getParameter("codigo");
				String nombre = (String)request.getParameter("nombre");
				String direccion = (String)request.getParameter("direccion");
				String barrio = (String)request.getParameter("barrio");
				String municipio = (String)request.getParameter("municipio");
				String area = (String)request.getParameter("area");
				String telefono = (String)request.getParameter("telefono");
				String ciiu = (String)request.getParameter("ciiu");
				String tipo_uso = (String)request.getParameter("tipo_uso");
				String tipo_predio = (String)request.getParameter("tipo_predio");
				String comercializador = (String)request.getParameter("comercializador");
				String estado_servicio = (String)request.getParameter("estado_servicio");
				String vinculo = (String)request.getParameter("vinculo");
				String tipo_conexion = (String)request.getParameter("tipo_conexion");
				String tension = (String)request.getParameter("tension");
				String tipo_red = (String)request.getParameter("tipo_red");
				String medidor = (String)request.getParameter("medidor");
				String marca = (String)request.getParameter("marca");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				
				
				
				
				UsuarioServicio usuario_servicio = new UsuarioServicio();
				usuario_servicio.setCodigo(codigo);
				usuario_servicio.setNombre(nombre);
				usuario_servicio.setDireccion(direccion);
				usuario_servicio.setBarrio(barrio);
				usuario_servicio.setMunicipio(municipio);
				usuario_servicio.setArea(area);
				usuario_servicio.setTelefono(telefono);
				usuario_servicio.setCiiu(ciiu);
				usuario_servicio.setTipo_uso(tipo_uso);
				usuario_servicio.setTipo_predio(tipo_predio);
				usuario_servicio.setComercializador(comercializador);
				usuario_servicio.setEstado_servicio(estado_servicio);
				usuario_servicio.setVinculo(vinculo);
				usuario_servicio.setTipo_conexion(tipo_conexion);
				usuario_servicio.setTension(tension);
				usuario_servicio.setTipo_red(tipo_red);
				usuario_servicio.setMedidor(medidor);
				usuario_servicio.setMarca(marca);
				usuario_servicio.setNotas(notas);
				usuario_servicio.setUsuario(usuario);
				
				ManejadorUsuarioServicio mus = new ManejadorUsuarioServicio(conexion,usuario_servicio);
				if (mus.Add()) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}

			if (operacion.equals("update")) {
				conexion = new db();
				
				String codigo = (String)request.getParameter("codigo");
				String nombre = (String)request.getParameter("nombre");
				String direccion = (String)request.getParameter("direccion");
				String barrio = (String)request.getParameter("barrio");
				String municipio = (String)request.getParameter("municipio");
				String area = (String)request.getParameter("area");
				String telefono = (String)request.getParameter("telefono");
				String ciiu = (String)request.getParameter("ciiu");
				String tipo_uso = (String)request.getParameter("tipo_uso");
				String tipo_predio = (String)request.getParameter("tipo_predio");
				String comercializador = (String)request.getParameter("comercializador");
				String estado_servicio = (String)request.getParameter("estado_servicio");
				String vinculo = (String)request.getParameter("vinculo");
				String tipo_conexion = (String)request.getParameter("tipo_conexion");
				String tension = (String)request.getParameter("tension");
				String tipo_red = (String)request.getParameter("tipo_red");
				String medidor = (String)request.getParameter("medidor");
				String marca = (String)request.getParameter("marca");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				String key = (String)request.getParameter("key");
				
				
				
				UsuarioServicio usuario_servicio = new UsuarioServicio();
				usuario_servicio.setCodigo(codigo);
				usuario_servicio.setNombre(nombre);
				usuario_servicio.setDireccion(direccion);
				usuario_servicio.setBarrio(barrio);
				usuario_servicio.setMunicipio(municipio);
				usuario_servicio.setArea(area);
				usuario_servicio.setTelefono(telefono);
				usuario_servicio.setCiiu(ciiu);
				usuario_servicio.setTipo_uso(tipo_uso);
				usuario_servicio.setTipo_predio(tipo_predio);
				usuario_servicio.setComercializador(comercializador);
				usuario_servicio.setEstado_servicio(estado_servicio);
				usuario_servicio.setVinculo(vinculo);
				usuario_servicio.setTipo_conexion(tipo_conexion);
				usuario_servicio.setTension(tension);
				usuario_servicio.setTipo_red(tipo_red);
				usuario_servicio.setMedidor(medidor);
				usuario_servicio.setMarca(marca);
				usuario_servicio.setNotas(notas);
				usuario_servicio.setUsuario(usuario);
				
				ManejadorUsuarioServicio mus = new ManejadorUsuarioServicio(conexion,usuario_servicio);
				if (mus.Update(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}
			
			if (operacion.equals("remove")) {
				String key = (String)request.getParameter("key");
				ManejadorUsuarioServicio mus = new ManejadorUsuarioServicio(conexion);
				if (mus.Remove(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
			}

		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			out.print("Error de conexion con el servidor: "
					+ e.getMessage());
		} finally { 
			if (conexion != null) {
				try {
					conexion.Close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					out.print(e.getMessage());
				}
			}
		}
		
		
		
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

}
